Çàêðûòü îêíî
Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"
%PAGE
8. ÈHTEPÏPETATOP ßÇÛKOB PAÏÈPA È POÁÈK
8.1. ßäpo cècòeìû.
8.1.1. Cocòaâ ÿäpa.
B ò.í. \ÿäpo cècòeìû\ âxoäÿò cëeäóþùèe ïoäïpoãpaììû:
%LIST
-Ïoäcècòeìa óïpaâëeíèÿ ïaìÿòüþ (CÓÏ). -Ïoäïpoãpaììû óïpaâëeíèÿ ïpoãpaììíûìè còeêaìè (ÏÓÏC). -Ïoäïpoãpaììû óïpaâëeíèÿ äèíaìè÷ecêèìè áóôepaìè. -Ïpoãpaììû êoïèpoâaíèÿ è óíè÷òoæeíèÿ äèíaìè÷ecêèx oáúeêòoâ (COPY/DELETE). -Ïoäcècòeìa ââoäa-âûâoäa.
%ENDL
Hèæe oïècûâaeòcÿ íaçía÷eíèe è còpóêòópa ýòèx ïoäïpoãpaìì.
8.1.2. Ïoäcècòeìa óïpaâëeíèÿ ïaìÿòüþ (CÓÏ).
Ïoäcècòeìa óïpaâëeíèÿ ïaìÿòüþ ocóùecòâëÿeò ïoëíûé êoíòpoëü ça pacïpeäeëeíèeì ïaìÿòè ïo ìeòoäó "áëèçíeöoâ" ([6]). Bûáop ýòoão ìeòoäa ïoçâoëÿeò oáecïe÷èòü òpeáóeìóþ cêopocòü óäoâëeòâopeíèÿ ÷acòûx çaïpocoâ ía âûäeëeíèe è ocâoáoæäeíèe ïaìÿòè ïpè paáoòe c oáúeêòaìè äèíaìè÷ecêoã paçìepa.
Coãëacío ìeòoäó "áëèçíeöoâ" ïóë äèíaìè÷ecêoé ïaìÿòè è âce âûäeëÿeìûe áëoêè ìoãóò èìeòü äëèíó òoëüêo 2**N. Maêcèìaëüíoe çía÷eíèe N â äaííoé peaëèçaöèè - 15(¤F), ÷òo cooòâeòcòâóeò ïóëó â 32 Káaéòa. B cècòeìe peaëüío ècïoëüçóþòcÿ áëoêè íe ìeíüøe 4 áaéòoâ.
Cïècoê câoáoäíoé ïaìÿòè ïpeäcòaâëÿeòcÿ òaáëèöeé ACÏ. Äëÿ áëoêoâ êaæäoão paçìepa â íeé oòâeäeíû paçäeëû ïo 4 áaéòa, â êoòopûx xpaíÿòcÿ ccûëêè ía ïepâûé è ïocëeäíèé câoáoäíûe áëoêè â äâócâÿçíoì cïècêe. Äâócâÿçíûé cïècoê oáëeã÷aeò ècêëþ÷eíèe áëoêa èç cïècêa ïpè eão âûäeëeíèè èëè cëèÿíèè c áëèçíeöoì. Ïoâcþäó â cïècêe oòcóòcòâèe ccûëêè oáoçía÷aeòcÿ íóëeì â còapøeì áaéòe aäpeca.
Ocoáeííocòè peaëèçaöèè ìeòoäa "áëèçíeöoâ":
%LISTD
-Ïocêoëüêó aäpec áëoêa-áëèçíeöa oïpäeëÿeòcÿ êaê "aácoëþòíûé aäpec áëoêa" EOR "äëèía áëoêa", aäpec êaæäoão áëoêa äoëæeí áûòü êpaòeí eão äëèíe. Eäèícòâeííoe íeâûïoëíeíèe ýòoão ócëoâèÿ (aäpec ïóëa ¤4000 íe êpaòeí eão paçìepó ¤8000) ïpèâoäèò ê íeâoçìoæíocòè oáúeäèíeíèÿ äâóx áëoêoâ paçìepoì â ïoëïóëa, ío ýòo peaëüío è íe òpeáóeòcÿ. Booáùe æe, íapóøeíèe ýòoão òpeáoâaíèÿ oïacío.
-Çaíÿòûe è câoáoäíûe áëoêè â ïóëe pacïoçíaþòcÿ ïo 2 ìëaäøèì áèòaì câoeão 0-ão áaéòa (òeãó äecêpèïòopa). Bce òeãè, êpoìe 0,4,8,¤C, oçía÷aþò, ÷òo áëoê çaíÿò, è cëóæaò äëÿ pacïoçíaâaíèÿ âèäoâ oáúeêòoâ. B ïpoòèâíoì cëó÷ae áëoê câoáoäeí, è ïepâûe 4 áaéòa â íeì çaíèìaþò 2 aäpeca (ccûëêè ía ïpeäûäóùèé è cëeäóþùèé câoáoäíûe áëoêè òoão æe paçìepa). Taêoe pacïoçíaâaíèe âoçìoæío ïoòoìó, ÷òo aäpec ëþáoão áëoêa êpaòeí 4, ò.e. 2 ìëaäøèx áèòa aäpeca paâíû 00. Mëaäøèé áaéò òaêoão aäpeca è xpaíèòcÿ â 0-oì áaéòe câoáoäíoão áëoêa.
-B äecêpèïòope çaíÿòoão áëoêa (áèòû 7-4) xpaíèòcÿ êoícòaíòa N-2, paâíaÿ log2(äëèía áëoêa)-2. Ó ÷èceë, äëÿ ïpeäcòaâëeíèÿ êoòopûx äocòaòo÷ío ¤80 áaéòoâ (N-2=5), 7 áèò oòâeäeí äëÿ çíaêa. Ïpè ocâoáoæäeíèè áëoêa CÓÏ ècïoëüçóeò òeã è â çaâècèìocòè oò íeão oïpeäeëÿeò äëèíó áëoêa ïo 3 èëè 4 áèòaì N-2.
-5-é ïo ïopÿäêó áaéò câoáoäíoão áëoêa çaíèìaeò êoícòaíòa ¤F0+(N-2). Oía ècïoëüçóeòcÿ òoëüêo ïpè cëèÿíèè áëoêoâ äëÿ oïpeäeëeíèÿ áëèçíeöa.
%LEFT 5
B caìoì äeëe, ïpè cëèÿíèè c áëèçíeöoì íeoáxoäèìo ïpoâepèòü, íe paçáèò ëè oí ía áoëee ìeëêèe áëoêè, ÷acòü èç êoòopûx çaíÿòa, a caìûé ïepâûé câoáoäeí. Ïoýòoìó oäíoé ïpoâepêè òeãa íeäocòaòo÷ío, â câoáoäíoì áëoêe íóæío xpaíèòü è eão äëèíó. Cëoæeíèe c ¤F0 òpeáóeòcÿ äëÿ paçëè÷eíèÿ äâóx cèòóaöèé:
%AREA 9
áëoê-áëèçíeö
!-----------!-----------!---
! câoá.(4á) ! çaíÿò(4á) !
!-----------!-----------!---
!-----------!---------------
! câoáoä.áëoê (8á. è áoëee)
!-----------!---------------
^
Koícòaíòa ¤FX â oòìe÷eííoì áaéòe ïoçâoëÿeò ècêëþ÷èòü ïepâóþ cèòóaöèþ (N-2 çaíÿòoão 4-áaéòoâoão áëoêa íe ìoæeò áûòü òaêèì). Äëÿ 4-áaéòoâûx áëoêa oía íe íóæía: ýòè áëoêè óæe íe äeëÿòcÿ.
%LEFT -5
-B cècòeìe ècïoëüçóeòcÿ cëeäóþùaÿ ocoáeííocòü peaëèçaöèè CÓÏ: ïpè çaïpoce ïaìÿòè âûäeëÿeòcÿ ïocëeäíèé íeoáúeäèíeííûé ocâoáoæäeííûé áëoê äaííoé äëèíû (ïoäïpoãpaììa WBUF).
%ENDL
CÓÏ cocòoèò èç äâóx ïoäïpoãpaìì:
%LISTM
-SUP1 - âûäeëeíèe áëoêa â ïóëe. Peaëüío íeoáxoäèìoe ÷ècëo áaéòoâ (ïëþc oäèí äëÿ äecêpèïòopa) ïepeäaeòcÿ â DL. Bûäeëÿeòcÿ ìèíèìaëüíûé èç ïoäxoäÿùèx áëoêoâ: N òaêoe, ÷òo 2**(N-1) < DL <= 2**N. Aäpec âûäeëeííoão áëoêa âûäaeòcÿ â ADR4. -SUP2 - ocâoáoæäeíèe áëoêa. Aäpec áoêa ïepeäaeòcÿ â ADR4.
%ENDL
B cècòeìe ècïoëüçóeòcÿ cëeäóþùee cocòoÿíèe peãècòpoâ ïpoöeccopa ía âûxoäe èç CÓÏ:
%LISTM
-X - íe ìeíÿeòcÿ, -Y=A=0, Z=1 (äëÿ SUP1, ecëè âoçíèêëa cèòóaöèÿ "èc÷epïaía ïaìÿòü", A=¤0E, Z=0).
%ENDL
Äëÿ èíèöèaëèçaöèè CÓÏ äocòaòo÷ío:
%LISTM
-çaïècaòü â ïepâûe 5 áaéòoâ ïóëa 00 00 00 00 FD (ïóë ïpeäcòaâëÿeò coáoé eäèícòâeííûé câoáoäíûé áëoê); -oáíóëèòü âce paçäeëû ACÏ, a â ïocëeäíèé çaíecòè äâa aäpeca ía÷aëa ïóëa (ía÷aëüíûé cïècoê câoáoäíoé ïaìÿòè).
%ENDL
8.1.3. Ïoäïpoãpaììû óïpaâëeíèÿ ïpoãpaììíûìè còeêaìè (ÏÓÏC).
Ïoäïpoãpaììû ÏÓÏC opãaíèçóþò ïoáaéòoâóþ paáoòó c ïpoãpaììíûìè còeêaìè (çaïècü è ÷òeíèe áaéòa).
%LIST
-WSTEK, IZSTEK - cooòâeòcòâeíío, çaïècü è ÷òeíèe oäíoão áaéòa (äëÿ ãëaâíoão còeêa);
-WSTEK1, IZSTEK1 - òo æe äëÿ âòopoão còeêa;
-WSTEK0 - cía÷aëa ïpoâepèòü, ecòü ëè â oáëacòè ïpoãpaììíûx còeêoâ ¤20 câoáoäíûx áaéòoâ; ecëè ecòü - ïepeéòè ía WSTEK, èía÷e âûäaòü oøèáêó.
-IZSTEK0 - c÷èòûâaíèe oäíoão áaéòa èç ãëaâíoão èëè âcïoìoãaòeëüíoão còeêa â çaâècèìocòè oò cocòoÿíèÿ ÿ÷eéêè WHATSTEK (còapøèé áèò=0 - ãëaâíûé, 1 - ïoáo÷íûé). Ýòa ïoäïpoãpaììa âûçûâaeòcÿ ïoäïpoãpaììoé ELEMENT. Eäèícòâeííoe ìecòo, ãäe òpeáóeòcÿ c÷èòûâaíèe co âòopoão còeêa - âûçoâ ïpoöeäópû, ãäe èç íeão èçâëeêaþòcÿ ïapaìeòpû.
%ENDL
Èíòepôeéc ïoäïpoãpaìì paáoòû co còeêaìè:
\çaïècü\ \÷òeíèe\
âxoä: A=çaïècûâaeìûé áaéò -
âûxoä: A íeèçâecòío A=c÷èòaííûé áaéò
Y=0 Y=0
X íe ìeíÿeòcÿ X íe ìeíÿeòcÿ
Boçìoæíûe oøèáêè:
%LISTM
-ïepeïoëíeíèe còeêa; -èc÷epïaíèe còeêa (ïpè íopìaëüíoé paáoòe cècòeìû oøèáêa íe äoëæía âoçíèêaòü).
%ENDL
Ïpè oápaùeíèè ê ýòèì ïoäïpoãpaììaì cëeäóeò ïoìíèòü, ÷òo oíè ìoãóò äaòü cèãíaë oá oøèáêe è caìocòoÿòeëüío âûçâaòü peaêöèþ ía íee. Heoáxoäèìo ëèáo oáecïe÷èòü íeâoçìoæíocòü âoçíèêíoâeíèÿ oøèáoê, ëèáo ïpeäócìoòpeòü ocoáóþ ïpoãpaììó èx oápaáoòêè è íacòpoèòü ía íee cècòeìíûé âeêòop peaêöèè ía oøèáêè (cì.8.5.1).
8.1.4. Ïoäïpoãpaììû óïpaâëeíèÿ äèíaìè÷ecêèìè áóôepaìè.
Ýòè ïoäïpoãpaììû cëóæaò äëÿ opãaíèçaöèè è ïoääepæêè äèíaìè÷ecêèx áóôepoâ ïepeìeííoé äëèíû.
Bceão èìeþòcÿ 4 òèïa áóôepoâ (â cêoáêax óêaçaíû íoìepa áóôepoâ):
- ïoòoê êoìaíä (X=0),
- áóôep êoícòaíò (X=2),
- áóôep cìeùeíèé (X=4),
- òaáëèöa èäeíòèôèêaòopoâ (X=6).
Bce oíè, êaê áûëo óêaçaío ïpè oïècaíèè ïpoeêòíûx peøeíèé, èìeþò çapaíee íe oïpeäeëeííóþ äëèíó è oáùèé ïpèíöèï oápaáoòêè. Kpoìe òoão, áóôepa ïepâûx òpex òèïoâ ìoãóò cóùecòâoâaòü íe â eäèícòâeííoì ÷ècëe (ecëè ecòü ïpoöeäópû). Ïo ýòèì ïpè÷èíaì íaïècaíû äâe óíèâepcaëüíûe ïoäïpoãpaììû coçäaíèÿ äèíaìè÷ecêoão áóôepa è çaïècè áaéòa â eão êoíeö.
Ha âxoä oáeèì ïoäïpoãpaììaì â peãècòpe X ïepeäaeòcÿ íoìep áóôepa.
%LISTD
-Ïpoãpaììa INIT opãaíèçóeò ïócòoé áóôep, çaêaçûâaÿ äëÿ íeão áëoê paçìepoì 16 áaéòoâ;
-Ïpoãpaììa WBUF äoïècûâaeò coäepæèìoe aêêóìóëÿòopa ê ïpeäâapèòeëüío èíèöèaëèçèpoâaííoìó áóôepó; ecëè áóôep çaíèìaeò âecü oòâeäeííûé ïoä íeão áëoê ïaìÿòè, òo ïepeä çaïècüþ áaéòa íeoáxoäèìo çaêaçaòü áoëüøèé áëoê è ïepeïècaòü â íeão áóôep:
%LISTL
-áëoê ïaìÿòè ocâoáoæäaeòcÿ (ïpè ýòoì coxpaíÿeòcÿ coäepæèìoe ècïoëüçóeìûx CÓÏ ïepâûx 5 áaéòoâ áëoêa),
-ó CÓÏ çaïpaøèâaeòcÿ íoâûé, âäâoe áoëüøèé áëoê ïaìÿòè,
-ecëè íoâûé áëoê âûäeëeí, òo â íeão ïepeïècûâaòcÿ coäepæèìoe áóôepa. Ecëè íeò, òo ó CÓÏ çaêaçûâaeòcÿ áëoê ïaìÿòè ïpeæíeão paçìepa (÷òoáû âoccòaíoâèòü áóôep), ïpè ýòoì âûäeëÿeòcÿ còapûé áëoê (cì. 8.1.2, ï.5), è âûäaeòcÿ cèãíaë oá oøèáêe.
%ENDL
%ENDL
Paáo÷èe oáëacòè:
%LISTM
-BEGIN - ía÷aëa áëoêoâ ïaìÿòè, âûäeëeííûe ïoä áóôepa; íóëeâoé còapøèé áaéò aäpeca oáoçía÷aeò oòcóòcòâèe äaííoão áóôepa;
-COMMANDS - aäpeca ïepâûx câoáoäíûx áaéòoâ â áëoêax (óêaçaòeëè êoíöoâ áóôepoâ);
-LAST - aäpeca ïocëeäíèx áaéòoâ áëoêoâ ïaìÿòè, âûäeëeííûx ïoä áóôepa.
%ENDL
8.1.5. Ïpoãpaììa COPY/DELETE.
Ïpoãpaììa COPY/DELETE ïpeäíaçía÷eía äëÿ oápaáoòêè \oáúeêòoâ â ïóëe\, ò.e. ïo câoeìó ópoâíþ oía âûøe âcex oïècaííûx â ýòoì paçäeëe ïpoãpaìì. Oía cocòoèò èç äâóx ïoäïpoãpaìì: COPY è DELETE.
Ïoäïpoãpaììa COPY ïoëó÷aeò ía âxoäe aäpec oáúeêòa â ADR1 è âoçâpaùaeò aäpec peçóëüòaòa - êoïèè ècxoäíoão oáúeêòa - â ADR4.
Ïoäïpoãpaììa DELETE ocâoáoæäaeò ïaìÿòü, çaíÿòóþ oáúeêòoì, aäpec êoòopoão ïepeäaeòcÿ eé â ADR1.
Ïpè êoïèpoâaíèè ÷èceë è òeêcòoâ äocòaòo÷ío ïpocòo ïoëó÷èòü oò CÓÏ áëoê ïaìÿòè òpeáóeìoão paçìepa è ïepeïècaòü òóäa coäepæèìoe áëoêa. Aíaëoãè÷ío, ïpè óíè÷òoæeíèè äocòaòo÷ío òoëüêo ocâoáoäèòü çaíèìaeìûé èìè áëoê.
Ïpè êoïèpoâaíèè ïócòoão çía÷eíèÿ è còaíäapòíoé ïpoöeäópû äocòaòo÷ío âepíóòü ïoäaííûé ía âxoä aäpec, a ïpè èx óíè÷òoæeíèè íèêaêèx äeécòâèé ïpeäïpèíèìaòü íe íaäo.
Ïpè êoïèpoâaíèè ïpoöeäópû, ôóíêöèè è ôaéëa ïpoècxoäèò óâeëè÷eíèe oäíoáaéòoâoão c÷eò÷èêa ccûëoê è âûäaeòcÿ aäpec òoão æe oáúeêòa. Oòcþäa è cëeäóeò ïpèíöèï cpaâíeíèÿ oáúeêòoâ ýòèx âèäoâ ïo ccûëêe. Ïpè äocòèæeíèè c÷eò÷èêoì êpèòè÷ecêoão çía÷eíèÿ - 256 - âûäaeòcÿ cèãíaë oá oøèáêe ("ìíoão êoïèé"). Ïpè èx óíè÷òoæeíèè peaëüíoe ocâoáoæäeíèe ïaìÿòè ïpoècxoäèò òoëüêo ïocëe äocòèæeíèÿ c÷eò÷èêoì ccûëoê íóëeâoão çía÷eíèÿ.
Ïpè êoïèpoâaíèè èëè óíè÷òoæeíèè cocòaâíûx còpóêòóp - êopòeæeé, ìíoæecòâ è çaïèceé - ècïoëüçóeòcÿ cxoæecòü èx âíóòpeííeão ïpeäcòaâëeíèÿ. Äëÿ opãaíèçaöèè peêópcèè ècïoëüçóeòcÿ âcïoìoãaòeëüíûé còeê. Ïpè íexâaòêe ïaìÿòè äëÿ êoïèè áoëüøoé còpóêòópû ïpoècxoäèò ôèêòèâíoe êoïèpoâaíèe ocòaòêa còpóêòópû c öeëüþ âepíóòücÿ èç peêópcèè, çaòeì âíoâü ïoëó÷eííaÿ còpóêòópa óíè÷òoæaeòcÿ è âûäaeòcÿ cèãíaë oá oøèáêe.
Ècïoëüçoâaíèe äaííoé ïoäïpoãpaììû oáëeã÷aeò peaëèçaöèþ ïpèíÿòoão â cècòeìe ïpèíöèïa êoïèpoâaíèÿ oáúeêòa ïpè íeoáxoäèìocòè coçäaíèÿ äoïoëíèòeëüíoé ccûëêè ía íeão è óíè÷òoæeíèÿ eão ïpè óíè÷òoæeíèè ýòoé ccûëêè. Äocòoèícòâoì ýòoão ïpèíöèïa ÿâëÿeòcÿ oòcóòcòâèe íaäoáíocòè â cpeäcòâax cáopêè ìócopa. K eão íeäocòaòêaì ìoæío oòíecòè ça÷acòóþ íeíóæíûe êoïèpoâaíèÿ oáúeêòoâ (íaïpèìep, âoçâpaòíoão ïapaìeòpa ïpè âxoäe â ïpoöeäópó).
Ïoäïpoãpaììa COPY/DELETE oáëeã÷aeò paáoòó c oáúeêòaìè ía âíóòpeííeì ópoâíe P-èíòepïpeòaòopa.
Ïpè paáoòe ïpoãpaììû COPY âeäeòcÿ òùaòeëüíaÿ oápaáoòêa oøèáêè c öeëüþ oáecïe÷èòü oòcóòcòâèe ìócopa ïpè íexâaòêe ïaìÿòè âo âpeìÿ êoïèpoâaíèÿ cocòaâíoão oáúeêòa (óíè÷òoæeíèe óæe cêoïèpoâaííûx ÷acòeé oáúeêòa).